<?php

class IMemcacheHelper {
	/**
	 * 服务器数量
	 *
	 * @var integer 
	 */
	private static $ServerNum 	= 1;
	/**
	 * 服务器后缀地址段
	 *
	 * @var string
	 */
	private static $Suffix		= ".host";
	/**
	 * 服务器前缀地址段
	 *
	 * @var string
	 */
	private static $Prefix		= "mc";
	/**
	 * 服务器端口
	 *
	 * @var array
	 */
	private static $port		= array(11211,11212);
	/**
	 * 服务器列表
	 *
	 * @var array
	 */ 
	private static $ServerList;
	
	public function __construct(){
	}
	/**
	 * 判断是否开启memcache
	 *
	 * @return boolean
	 */
	public static function isEnabed() {
		return ini_get("memcache.enabled");
	}
	/**
	 * 设置端口
	 *
	 * @param array $port
	 */
	public static function setPort($port){
		self::$port = $port;
	}
	/**
	 * 获取端口
	 *
	 * @return array
	 */
	public static function getPort(){
		return self::$port;
	}
	
	/**
	 * 设置服务器前缀
	 *
	 * @param string $prefix
	 */
	public static function setPrefix($prefix){
		self::$Prefix = $prefix;
	}
	
	/**
	 * 获取服务器前缀
	 *
	 * @return string
	 */
	public static function getPrefix(){
		return self::$Prefix;
	}
	
	/**
	 * 设置服务器后缀
	 *
	 * @param string $host
	 */
	public static function setSuffix($suffix){
		self::$Suffix = $suffix;
	}
	/**
	 * 获取服务器后缀
	 *
	 * @return string
	 */
	public static function getSuffix(){
		return self::$Suffix;
	}
	
	/**
	 * 设置服务器个数
	 *
	 * @param integer $num
	 */
	public static function setServerNum($num){
		self::$ServerNum = $num;
	}
	
	/**
	 * 获取服务器个数
	 *
	 * @return integer
	 */
	public static function getServerNum(){
		return self::$ServerNum;
	}
	
	/**
	 * 获取服务器列表
	 *
	 * @return array
	 */
	public static function getServer(){
		if(self::$ServerList == NULL){
			self::selectServer();
		}
		return self::$ServerList;
	}
	
	/**
	* 服务器列表对象
	* 
	* <pre>
	*	 	$s = array(
	*			array(
	*				"dns"=>"127.0.0.1",
	*				"port"=>11211,
	*			),
	*			array(
	*				"dns"=>"127.0.0.1",
	*				"port"=>11212
	*			)
	*		);
	*		self::$mem->setServer($s);
	* </pre>
	* 
	* @param array $memObj

	*/
	public static function setServer($memObj){
		if(!is_array($memObj) || empty($memObj)){
			die("you server lint error");
		}
		self::$ServerList = $memObj;
	}
	
	/**
	 * 组合列表
	 *
	 */
	public static function selectServer(){
		self::$ServerList = array();
		for($i = 1 ; $i <= self::$ServerNum; $i++){
			foreach (self::$port as $v){
				self::$ServerList[] = array(
					"dns"=>self::$Prefix.$i.self::$Suffix,
					"port"=>$v
				);	
			}
		}
	}
}
?>